/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src;

import src.tarea1.GeneradorStandarMinimo;
import src.tarea1.PruebaChi;
import src.tarea1.PruebaCorridas;
import src.tarea1.PruebaSerie;
import src.tarea1.Transformaciones;
/**
 *
 * @author jorgeorm
 */
public class Simulacion_Comp {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        boolean sonDependientes;
        
        
        /*Generador de datos aleatorios
         */
        System.out.println("===========>Generador aleatorio");
        int semilla= (int)System.currentTimeMillis();
        int numeroDatos=600;
        int valor_a=9000;
        
        GeneradorStandarMinimo generador= new GeneradorStandarMinimo(numeroDatos, Integer.MAX_VALUE, valor_a, semilla);
        
        System.out.println("Número de datos: "+numeroDatos+", valor de A:"+valor_a+", valor de Q: "+generador.getFactorQ()+", valor de R: "+generador.getFactorR());
//        generador.escribirSalida();
        /*Prueba Uniformidad
         */
//        System.out.println("===========>Prueba de Uniformidad Chi²");
//        PruebaChi objPruebaChi= new PruebaChi(generador.getNumsNormalizados());
//        objPruebaChi.calcularChiCalculadoUniforme();
////        objPruebaChi.imprimpirClases();
////        objPruebaChi.imprimirFrecuencias();
//        System.out.println("Número clases: "+objPruebaChi.getNumeroClases()+", tamaño Clase: "+objPruebaChi.getTamanoClase());
//        System.out.println("Chi²Calculado = "+objPruebaChi.getChiCalculado());
//        
//        /*Pruebas Corrida
//         */
//        System.out.println("===========>Prueba de Corrida Z²");
//        PruebaCorridas objPruebaCorridas = new PruebaCorridas(generador.getNumsNormalizados(), 0.05);
//        sonDependientes=objPruebaCorridas.realizarPrueba();
//        objPruebaCorridas.imprimirArrayAsc();
//        System.out.println("Z²Observado para prueba corridas: "+objPruebaCorridas.getzObservado());
//        System.out.println("Z²Significancia para prueba corridas: "+objPruebaCorridas.getzSignificancia());
//        System.out.println(sonDependientes);
//        
//        /*Prueba Serie
//         */
//        System.out.println("===========>Prueba de Serie Chi²");
//        PruebaSerie objPruebaSerie= new PruebaSerie(generador.getNumsNormalizados());
//        objPruebaSerie.contarFrecuencias();
////        objPruebaSerie.imprimirTablaFreq();
//        objPruebaSerie.calcularChi();
//        System.out.println("Chi²Calculado para Serie:"+objPruebaSerie.getChiCuad());
        
        //Transformacion exponencial
        Transformaciones objTransformacion=new Transformaciones(generador.getNumsNormalizados());
//        objTransformacion.transExponencial(2.4);
//        objTransformacion.escribirSalida("TransfExp2_4");
        
        //Transformacion binomial
//        
//        objTransformacion.transBinomial(100, 0.8);
//        objTransformacion.escribirSalida("pruebaBinomial");
        
        /*Transformación Poisson
         */
//        objTransformacion.transPoisson(2.4);
//        objTransformacion.escribirSalida("TransfPoisson");
        
        /*Transformación Normal Estandarizada
         */
        objTransformacion.transNormalCentral(6);
        objTransformacion.escribirSalida("TransfNormalEst");
        
        /*Transformación Normal Media varianza (10,3)
         */
//        objTransformacion.transNormal(10.0, 3.0);
//        objTransformacion.escribirSalida("TransfNormal_10_3");
        
        /*Transformación Binommial Jorge
         */
//        objTransformacion.transBinomialAlt(100, 0.8);
//        objTransformacion.escribirSalida("TransfBinomial_100_80");
        
        objTransformacion.escribirDatosNormales("DatosNormales");
   
    }
}
